package com.ruoyi.system.domain.api;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 链上提现对象 w_record_transfer_out
 * 
 * @author ruoyi
 * @date 2022-04-22
 */
public class WRecordTransferOut extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 转出用户ID */
    @Excel(name = "转出用户ID")
    private Long userId;

    /** 转出地址 */
    @Excel(name = "转出地址")
    private String fromAddress;

    /** 转入地址 */
    @Excel(name = "转入地址")
    private String toAddress;

    /** 币种名称 */
    @Excel(name = "币种名称")
    private String coinName;

    /** 币种名称 */
    @Excel(name = "币种名称")
    private String coinType;

    /** 实际提现金额 */
    @Excel(name = "实际提现金额")
    private BigDecimal withdrawAmount;

    /** 提现金额 */
    @Excel(name = "提现金额")
    private BigDecimal amount;

    /** 提现手续费 */
    @Excel(name = "提现手续费")
    private BigDecimal fee;

    /** 0待审核 1转账中 2确认中 3转账成功 4审批拒绝 5转账失败 6发送交易中 7打包中  8二次审核确认中 */
    @Excel(name = "0待审核 1转账中 2确认中 3转账成功 4审批拒绝 5转账失败 6发送交易中 7打包中  8二次审核确认中")
    private Integer status;

    /** 链上手续费 */
    @Excel(name = "链上手续费")
    private BigDecimal chainFee;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String txId;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 是否转账成功 */
    @Excel(name = "是否转账成功")
    private Long isFinish;

    private String userEmail;

    public String getUserEmail() {
        return userEmail;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setFromAddress(String fromAddress) 
    {
        this.fromAddress = fromAddress;
    }

    public String getFromAddress() 
    {
        return fromAddress;
    }
    public void setToAddress(String toAddress) 
    {
        this.toAddress = toAddress;
    }

    public String getToAddress() 
    {
        return toAddress;
    }
    public void setCoinName(String coinName) 
    {
        this.coinName = coinName;
    }

    public String getCoinName() 
    {
        return coinName;
    }
    public void setCoinType(String coinType) 
    {
        this.coinType = coinType;
    }

    public String getCoinType() 
    {
        return coinType;
    }
    public void setWithdrawAmount(BigDecimal withdrawAmount) 
    {
        this.withdrawAmount = withdrawAmount;
    }

    public BigDecimal getWithdrawAmount() 
    {
        return withdrawAmount;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setFee(BigDecimal fee) 
    {
        this.fee = fee;
    }

    public BigDecimal getFee() 
    {
        return fee;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setChainFee(BigDecimal chainFee) 
    {
        this.chainFee = chainFee;
    }

    public BigDecimal getChainFee() 
    {
        return chainFee;
    }
    public void setTxId(String txId) 
    {
        this.txId = txId;
    }

    public String getTxId() 
    {
        return txId;
    }
    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }
    public void setIsFinish(Long isFinish) 
    {
        this.isFinish = isFinish;
    }

    public Long getIsFinish() 
    {
        return isFinish;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("fromAddress", getFromAddress())
            .append("toAddress", getToAddress())
            .append("coinName", getCoinName())
            .append("coinType", getCoinType())
            .append("withdrawAmount", getWithdrawAmount())
            .append("amount", getAmount())
            .append("fee", getFee())
            .append("status", getStatus())
            .append("chainFee", getChainFee())
            .append("txId", getTxId())
            .append("finishTime", getFinishTime())
            .append("isFinish", getIsFinish())
            .append("createTime", getCreateTime())
            .append("remark", getRemark())
            .toString();
    }
}
